// #include <iostream>
// #include <string>
// #include <sys/types.h>
// #include <sys/stat.h>
// #include <fcntl.h>
// #include <unistd.h>
#include "comm.hpp"

int main()
{
     //构建管道就变成了    //创建管道文件
     NamedFifo fifo(PATH,FILENAME);   //当前文件   构建管道文件名为 fifo
     //当write 方没有执行open的时候，read方，就要在open内部进行阻塞，直到有人把管道文件打开，open才会返回


    // umask(0); // 设置一下自身所需的权限掩码
    // // 新建管道
    // int n = mkfifo(FIFO_FILE, 0666);

    // // 创建管道文件失败
    // if (n < 0)
    // {
    //     std::cerr << "mkfifo  error" << std::endl;
    //     return 1;
    // }
    // std::cout << "mkfifo success" << std::endl;


    // //server 进行读取   read
    // int fd = open(FIFO_FILE,O_RDONLY);
    // if(fd < 0)
    // {
    //     std::cerr<<"open fifo error"<<std::endl;
    //     return 2;
    // }
    // std::cout<<"open fifo success"<<std::endl;     //读取

    // //正常的读取  read
    // while(true)
    // {
    //     char buffer[1024];
    //     int number = read(fd,buffer,sizeof(buffer)-1);
    //     if(number > 0)    //大于0  就是读成功了
    //     {
    //         buffer[number] = 0;
    //         std::cout<<"Client Say# "<<buffer<<std::endl;
    //     }
    //     else if(number == 0)
    //     {
    //         //当写端进程关闭，曾打开的管道文件也会被直接关掉（文件的生命周期是随着进程有效的   client进程关闭，读端就会读到返回值0）
    //         //也就是不再是上面的 大于0         而是这里的等于0
    //         std::cout<<"client quit! me too!"<<std::endl;
    //         break;
    //     }
    //     else
    //     {
    //         std::cerr<<"read error"<<std::endl;
    //         break;
    //     }
    // }

    //读取结束  关闭fd
    // close(fd);

    //删除管道
    // n = unlink(FIFO_FILE);
    // if(n == 0)
    // {
    //     std::cout<<"remove fifo success"<<std::endl;
    // }
    // else
    // {
    //     std::cout<<"remove fifo failed"<<std::endl;
    // }

    
    
    //当把内容写入comm.hpp    后续就都变成了文件操作
    FileOper readerfile(PATH,FILENAME);

    readerfile.OpenForRead();

    readerfile.Read();

    readerfile.Close();

    return 0;
}
